define(["jquery","bbcare","bld/app/classify/programEdit.ui"],function($,$bb,$ui){
    var servers = {};
    var URL = $bb.baseUrl("blood");

    /**
     * 修改方案名称
     */
    servers.ajaxUpdateSchemeName = function(params,callback,schemeName) {
        $bb.ajax({
            url: URL + "scheme/updateSchemeBasicInfo",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,schemeName);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "修改方案名称出错！");
                }
            }
        });
    }

    /**
     * 发布方案
     */
    servers.ajaxReleaseScheme = function(params,callback){
        $bb.ajax({
            url: URL + "scheme/releaseScheme",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "发布方案出错！");
                }
            }
        });
    }

    /**
     * 查询方案详情
     */
    servers.ajaxQueryScheme = function(params,callback,arg) {
        $bb.ajax({
            url: URL + "scheme/queryScheme",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,arg);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "查询方案详情出错！");
                }
            }
        });
    }

    /**
     * 增加阶段
     */
    servers.ajaxAddStage = function(params,callback){
        $bb.ajax({
            url: URL + "stage/addStage",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "增加阶段出错！");
                }
            }
        });
    }

    /**
     * 根据stageId获取阶段索引
     */
    servers.getIndexByStageId = function(stages,stageId){
        for (var i = 0; i < stages.length; i++) {
            if( stages[i].id == stageId ) return i;
        }
    }

    /**
     * 修改阶段名称
     */
    servers.ajaxUpdateStageName = function(params,callback,stageId) {
        $bb.ajax({
            url: URL + "stage/updateStageBasicInfo",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,stageId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "修改阶段名称出错！");
                }
            }
        });
    }

    /**
     * 删除阶段
     */
    servers.ajaxDeleteStage = function(params,callback) {
        $bb.ajax({
            url: URL + "stage/deleteStage",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "删除阶段出错！");
                }
            }
        });
    }

    /**
     * 移动阶段
     */
    servers.ajaxMoveStage = function(params,callback,stageId) {
        $bb.ajax({
            url: URL + "stage/moveStage",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,stageId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "移动阶段出错！");
                }
            }
        });
    }

    /**
     * 获取所有方案分类
     */
    servers.ajaxQueryAllSchemeClass = function(callback){
        $bb.ajax({
            url: URL + "schemeClass/queryAllSchemeClass",
            success: function(data) {
                if (data.success) {
                    callback(data.data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "获取所有方案分类出错！");
                }
            }
        });
    }

    /**
     * 查询疗程信息
     */
    servers.ajaxQueryAllCourse = function(params,callback) {
        $bb.ajax({
            url: URL + "course/queryCourse",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.rows) {
                    callback(data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "查询疗程信息出错！");
                }
            }
        });
    }

    /**
     * 查询疗程分类
     */
    servers.ajaxCourseClass = function(callback) {
        $bb.ajax({
            url: URL + "courseClass/queryCourseLib",
            data: JSON.stringify({
                data: {
                    "queryCriteria":{}
                }
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "查询疗程分类出错！");
                }
            }
        });
    }

    /**
     * 疗程库中添加疗程
     */
    servers.ajaxAddCourse = function(params,callback,schemeClassId){
        $bb.ajax({
            url: URL + "course/addCourse",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,schemeClassId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "疗程库中添加疗程出错！");
                }
            }
        });
    }

    /**
     * 阶段下增加疗程
     */
    servers.ajaxAddStageCourse = function(params,callback,stageId){
        $bb.ajax({
            url: URL + "stageCourse/addCourse",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,stageId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "阶段下增加疗程出错！");
                }
            }
        });
    }

    /**
     * 删除疗程
     */
    servers.ajaxDeleteCourse = function(params,callback) {
        $bb.ajax({
            url: URL + "stageCourse/deleteCourse",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,params.stageCourse.stageId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "删除疗程出错！");
                }
            }
        });
    }

    /**
     * 移动疗程
     */
    servers.ajaxMoveCourse = function(params,callback,stageId) {
        $bb.ajax({
            url: URL + "stageCourse/moveCourse",
            data: JSON.stringify({
                data: params
            }),
            success: function(data) {
                if (data.success) {
                    callback(data.data,stageId);
                } else {
                    $bb.toastShow(data.msg ? data.msg : "移动疗程出错！");
                }
            }
        });
    }

    return servers;
});